#include
using namespace std;
class Pizza {
private: string parts;
public:
void setParts(string parts)
{
this->parts = parts;
}
string getParts()
{
return(parts);
}
};
class PizzaBuilder {
protected: Pizza* pizza;
public:
Pizza* getPizza()
{
retum pizza;
}
void createNewPizza()
{
pizza = new Pizza();
}
(1);
}
class HawaiianPizzaBuilder : public PizzaBuilder {
public:
void buildParts()
{
pizza->setParts("cross +mild + ham&pineapple");
}
};
class SpicyPizzaBuider : public PizzaBuilder {
public:
void buildParts()
{
pizza->setParts("pan baked +hot + ham&pineapple");
}
}
class Waiter{
private:
PizzaBuilder * pizzaBuilder;
public:
void setPizzaBuilder(PizzaBuilder* pizzaBuilder) /*设置构建器*/
{
(2)
}
Pizza* getPizza()
{
return(pizzaBuilder->getPizza());
}
void construct() /*构建*/
{
pizzaBuilder->createNewPizza();
(3)
}
};
int main()
{
Waiter *waiter = new Waiter();
PizzaBuilder *hawaiian_pizzabuilder = new HawaiianPizzaBuilder()
(4);
(5);
cout << "pizza: " < getPizza()->getParts() << end1;
}